import axios from "axios";
import qs from "qs";
import { Toast } from 'vant';

let config = {
    // baseURL: '',
    timeout: 10000,
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
}
let Loading = null;
const instance = axios.create(config);


// 添加请求拦截器
instance.interceptors.request.use(function(config) {
    Loading = Toast.loading({
        message: '加载中...',
        forbidClick: true,
        duration: config.timeout
    });

    config.data = qs.stringify(config.data)
        // 在发送请求之前做些什么
    return config;
}, function(error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function(response) {
    // 对响应数据做点什么
    console.log(response)
    Loading && Loading.clear();
    if (!response.data.result && typeof(response.data) == "string") {
        alert(response.data);
        return Promise.reject(response.data);
    }
    if (response.data.result == false) {

        if (response.config.noMsg !== true) {
            response.data.msg && Toast.fail(response.data.msg || "响应错误");
        }
        return Promise.reject(response.data.msg);
    } else {

        // return Promise.reject(response.data.msg);
        return response.data;
    }

}, function(error) {
    // 对响应错误做点什么
    Loading && Loading.clear();
    error.toString().indexOf("timeout") > -1 ? Toast.fail("请求超时") : Toast.fail("网络服务异常请稍后重试");
    return Promise.reject(error);
});

export default instance;